package com.ruoyi.system.mc.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.common.utils.StringUtils;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Objects;

/*
 *  @author 雨安
 *  类名： McProductDetailed
 *  创建时间：2024/5/25  商品详情表 继承每个表都有的默认实体类
 */
@Data//getter + setter + toString
@AllArgsConstructor//有参构造方法
@NoArgsConstructor//无参构造方法
@TableName("mc_product_detailed")//表名 商品详情表
public class McProductDetailed extends BaseEntity{
    /**
     * 商品详细主键ID
     */
    @TableId(type = IdType.AUTO)
    private Long detailedId;

    /**
     * 商品ID
     */
    private Long productId;

    /**
     * 商品详情名称
     */
    private String productName;

    /**
     * 所属店铺
     */
    private String belongingStore;

    /**
     * 商品颜色
     */
    private String productColor;

    /**
     * 商品长度
     */
    private Double productLength;

    /**
     * 商品高度
     */
    private Double productHeight;

    /**
     * 商品宽度
     */
    private Double productWidth;

    /**
     * 低配版,高配版 等 商品类型
     */
    private String productType;

    /**
     * 商品主图
     */
    private String productMainImg;

    /**
     * 商品附图 多张
     */
    private String productImgs;

    /**
     * 商品当前价格
     */
    private Double productPrice;

    /**
     * 是否为商家自定义折扣件 不是优惠卷是直接自定的折扣
     */
    private Double discount;

    /**
     * 商品库存,商品剩余数量
     */
    private Integer productQuantity;

    /**
     * 商品描述
     */
    private String productStyle;

    //条件构造器
    public LambdaQueryWrapper<McProductDetailed> getLambdaQueryWrapper(McProductDetailed mcProductDetailed){
        //返回条件构造器
        return new LambdaQueryWrapper<McProductDetailed>()
                //判断商品详情ID
                .eq(Objects.nonNull(mcProductDetailed.getProductId()),McProductDetailed::getProductId,mcProductDetailed.getProductId())
                //判断商品详情名称
                .like(StringUtils.isNotBlank(mcProductDetailed.getProductName()),McProductDetailed::getProductName,mcProductDetailed.getProductName())
                //判断商品颜色
                .like(StringUtils.isNotBlank(mcProductDetailed.getProductColor()),McProductDetailed::getProductColor,mcProductDetailed.getProductColor())
                //判断商品配置
                .like(StringUtils.isNotBlank(mcProductDetailed.getProductType()),McProductDetailed::getProductType,mcProductDetailed.getProductType())
                //判断逻辑删除
                .eq(McProductDetailed::getDeleteFlag,Boolean.FALSE);
    }

}
